home *** CD-ROM | disk | FTP | other *** search
/ Aminet 7 / Aminet 7 - August 1995.iso / Aminet / comm / mebbs / mn_ansitest.lha / ANSITEST / ansitest.rexx < prev   
OS/2 REXX Batch file  |  1994-10-26  |  7KB  |  302 lines

  1. /*template*/
  2.  
  3.  
  4. parse arg LineNumber
  5.  
  6. signal on SYNTAX
  7. signal on ERROR
  8. options results
  9. DoorName = "AnsiTest"
  10. if( ~show( 'l', "mebbsarexx.library" ) )then do
  11.    if( ~addlib( "mebbsarexx.library", 0, -30, 0 ) )then do
  12.       say "Could not open library"
  13.       exit 10
  14.    end
  15. end
  16.  
  17. ver = "     AnsiTest.Rexx  v.160 by /\/\r. Ed"
  18.  
  19. sysop = 'ED_KOLAR'       /* PUT YOUR NAME HERE   */
  20.  
  21. Author = "/\/\r. ED"
  22.  
  23.  
  24. /*      VariableNumbers:    */
  25.  
  26.  
  27. call getvar DoorName,LineNumber,1
  28. username=result
  29.  
  30. call getvar DoorName,LineNumber,21
  31. handlename=result
  32.  
  33.     /* get GFX mode */
  34. call getvar doorname,LineNumber,8
  35. mode=result
  36. gfx=mode
  37.  
  38. if mode = 1 then mode = "Color"
  39. ELSE mode = "B/White"
  40. if mode = "Color" then colr = "NONE"
  41. ELSE colr = "MONO"
  42. IF gfx ~= "0" THEN DO
  43.    black = '' ; blackback = ''
  44.    red = '' ; redback = ''
  45.    green = '' ; greenback = ''
  46.    yellow = '' ; yellowback = ''
  47.    blue = '' ; blueback = ''
  48.    magenta = '' ; magentaback = ''
  49.    cyan = '' ; cyanback = ''
  50.    white = '' ; whiteback = ''
  51.    italics = ''
  52.    bold = ''
  53.    normal = ''
  54.    cls = '0C'x||''
  55.    yesno = "(y/N)"
  56.    noyes = "(Y/n)"
  57. END
  58. ELSE DO
  59.    black = '' ; blackback = ''
  60.    red = '' ; redback = ''
  61.    green = '' ; greenback = ''
  62.    yellow = '' ; yellowback = ''
  63.    blue = '' ; blueback = ''
  64.    magenta = '' ; magentaback = ''
  65.    cyan = '' ; cyanback = ''
  66.    white = '' ; whiteback = ''
  67.    italics = ''
  68.    bold = ''
  69.    normal = ''
  70.    cls = '0C'x
  71.    yesno = '(y/N)'
  72.    noyes = '(Y/n)'
  73. end
  74.  
  75. call getvar DoorName,LineNumber,9
  76. width=result
  77. if width < 80 then call bad_width
  78.  
  79. if gfx = 0 then do
  80.  
  81.    string = "Your terminal is in non-graphics mode, according to the UserLog.";call output
  82.    string = "Do you want me to go ahead anyway? "yesno;call getkeyrn
  83.    ans = upper(hot)
  84.    if ans = "Y" then signal start
  85.    call exit_normal
  86.  
  87. end
  88.  
  89. signal start
  90.  
  91. bad_width:
  92.  
  93. string = "You have listed that your terminal";call output
  94. string = "width is only "width;call output
  95. string = "If this is not true then you must";call output
  96. string = "change your logged preferences.  To do this,";call output
  97. string = "hit (A) on the screen that follows";call output
  98. string = "and change your setting for (G) to";call output
  99. string = "something otherthan 0.";call output
  100. string = "Do you want to go ahead and try this";call output
  101. string = "test anyway?  "noyes;call getkeyry
  102. ans = upper(hot)
  103. if ans = "N" then signal exit_normal40
  104. wide = "N"
  105. return
  106.  
  107. /*  END */
  108.  
  109.  
  110. START:
  111.  
  112. file = "doors:ansitest/ansiscreen"
  113. call blank
  114. call blank
  115. string = cyan"       You may find it to be helpful to take a Snap of this screen";call output
  116. string = "      with something like "magenta""Screen Grabber""cyan" or "magenta""GrabIFF""cyan" to study later.";call output;call blank;call getreturn
  117. string = file;call readgr
  118. call blank
  119. ;call getreturn
  120. call check
  121. string = cls;call output;call blank;call blank;call blank
  122. string = cyan"You've been using "yellow||doorname||cyan" by "white||author||cyan".";call output
  123. call blank
  124. string = cyan"Thank you, "magenta||username||cyan", please press ["yellow"RETURN"cyan"].....";call output
  125. address command 'wait 1'
  126. address
  127. if wide = "N" then signal exit_normal40
  128. signal exit_normal
  129. /*   End of script  */
  130.  
  131.  
  132. /*************************   Procedures   ************************/
  133.  
  134. Exit_Normal:
  135. call blank;call blank;call blank;call blank;call blank
  136. string = "  "yellowback||black||bold"  Now returning you to that wonderful Chalkboard I & II BBS   "normal||cyan;call output
  137. address command 'wait 2'
  138. address
  139.  
  140. call Exit_Door DoorName,LineNumber
  141. exit 0
  142.  
  143. Exit_Normal40:
  144. call blank;call blank;call blank;call blank;call blank
  145. string = normal"  "yellowback||black||bold"  Now returning you to that wonderful ";call output
  146. string = normal"  "yellowback||black||bold"        Chalkboard I & II BBS         "normal||cyan;call output
  147. address command 'wait 2'
  148. address
  149.  
  150. call Exit_Door DoorName,LineNumber
  151. exit 0
  152.  
  153. GETRETURN:
  154.  
  155. string = CYAN||ITALICS" Press RETURN when ready..."NORMAL
  156. call hotkey doorname,linenumber,string
  157. hot=""
  158. return
  159.  
  160. GETKEYRN:
  161.  
  162. call hotkey doorname,linenumber,string
  163. hot=upper(result)
  164. if hot = "Y" then do
  165.         string =green" Yes"
  166.         call output
  167. end
  168. else do                    /* yesno = "(y/N)"*/
  169.         hot = "N"
  170.         string = red" No"
  171.         call output
  172. end
  173. return
  174.  
  175. GETKEYRY:
  176.  
  177. call hotkey doorname,linenumber,string
  178. hot=upper(result)
  179. if hot = "N" then do
  180.         string = red" No"
  181.         call output
  182. end                        /* noyes = "(Y/n)"*/
  183. else do
  184.         hot = "Y"
  185.         string = green" Yes"
  186.         call output
  187. end
  188. return
  189.  
  190. GETKEY:
  191.  
  192. call hotkey doorname,linenumber,string
  193. hot=result
  194. return
  195.  
  196. OUTPUT:
  197.  
  198. call message doorname,linenumber,string,1
  199. return
  200.  
  201. BLANK:
  202.  
  203. blnk = " "
  204. call message doorname,linenumber,blnk,1
  205. return
  206.  
  207. GETOUT:
  208.  
  209.  
  210.  
  211.  
  212. call blank
  213. call Exit_Door DoorName,LineNumber
  214. exit 0
  215.  
  216. Carrier:
  217.  
  218. call CDetect doorname,linenumber
  219. cd=result
  220. return
  221.  
  222. drophim:
  223.  
  224. call HangUp DoorName,LineNumber
  225. exit 0
  226.  
  227. readgr:
  228. call ReadGra doorname,linenumber,string
  229. return
  230.  
  231. readfl:
  232.  
  233. call ReadFile doorname,linenumber,string
  234. return
  235.  
  236.  
  237.  
  238. lclmsg:
  239.  
  240. call LocalMessage doorname,linenumber,string,1
  241. return
  242.  
  243.  
  244.  
  245. /*----------------------CHECK FOR DROPPED CARRIER------------------------*/
  246. check:      /* check for lost carrier or spaced-out player */
  247.  
  248. call carrier
  249. if cd = "No carrier!" then signal drophim
  250. return
  251.  
  252.  
  253. /*************************  End of Procedures  ************************/
  254.  
  255. /**************************ERROR******Procedures*****************************/
  256.  
  257.  
  258. IOERR:
  259.     err_line = SIGL ; sev = RC ; code = sev
  260. string ="**Crash** Looks like we got an I/O error somewhere!"
  261. call output
  262.  
  263.     signal log_it
  264.  
  265. ERROR:
  266.     err_line = SIGL ; sev = RC ; code = sev
  267. string ="**Crash** Looks like we got some sort of error!"
  268. call output
  269.  
  270.     signal log_it
  271.  
  272. SYNTAX:
  273.     err_line = SIGL ; sev = RC ; code = sev
  274. string ="**Crash** Looks like we got a syntax error somewhere!"
  275. call output
  276.  
  277.         signal log_it
  278.  
  279. log_it:
  280. Crash_N_Burn:
  281. Wrap_it_up:
  282.     string ="Looks like we're gonna have to bail outta this mess......"
  283.     call output
  284. /*--------------------------------LOG-ERRORS----------------------------*/
  285. call blank
  286. string = "A fatal error has occured!"
  287. call delay(50)
  288. call blank
  289. string = "Inform Sysop to check the error log!"
  290. call output
  291. call delay(50)
  292. if ~exists('bbs:logs') then makedir('BBS:Logs')
  293. if ~exists('BBS:Logs/Errlog') then call open(err,'BBS:Logs/Errlog','W')
  294. else call open(err,'BBS:Logs/Errlog','A')
  295. call writeln(err,date() time());call writeln(err,name" - "||doorname)
  296. call writeln(err,"Line - "err_line" Code - "code" User - "username);call writeln(err,errortext(code))
  297. call writeln(err,"");call close(err)
  298.  
  299. call Exit_Door doorname,linenumber
  300. exit 0
  301.  
  302.